package main

import (
	"fmt"
	"reflect"
)

func sumAndPrint[T int | string | float64 | float32](a, b T) T {
	fmt.Println(reflect.TypeOf(a))
	return a + b
}

func main() {
	//带有泛型的函数，可以在调用函数时指定泛型类型。可以不写，go语言可以自动推断类型
	fmt.Println(sumAndPrint(1, 2))
	//如此调用，则指定为int
	fmt.Println(sumAndPrint[int](1, 2))
	fmt.Println(sumAndPrint("a", "b"))
}
